package cn.tedu.em.advise.service;

import cn.tedu.em.common.pojo.advise.dto.AdviseAddNewDTO;
import cn.tedu.em.common.pojo.advise.dto.AdviseUpdateDTO;
import cn.tedu.em.common.pojo.advise.vo.AdviseListItemVO;
import cn.tedu.em.common.pojo.advise.vo.AdviseStandardVO;

import java.util.List;

public interface IAdviseService {

    /**
     * 添加建议的业务逻辑层方法
     * @param adviseAddNewDTO
     */
    void addNew(AdviseAddNewDTO adviseAddNewDTO);
    
    /**
     * 删除建议
     * @param id 尝试删除的建议数据的ID
     */
    void delete(Long id);

    /**
     * 修改建议数据
     * @param id 被修改的建议数据的ID
     * @param adviseUpdateDTO 建议的新数据
     */
    void updateInfoById(Long id, AdviseUpdateDTO adviseUpdateDTO);

    /**
     * 根据ID查询建议数据的详情
     *
     * @param id 建议ID
     * @return 匹配的建议数据的详情，如果没有匹配的数据，则返回null
     */
    AdviseStandardVO getStandardById(Long id);

    /**
     * 查询建议数据列表
     *
     * @return 建议数据列表
     */
    List<AdviseListItemVO> list();
}
